package com.redare.dev.smart.generator.sdk.pojo.form;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

;import java.util.Date;

/**
 * @date 2021-08-28 23:03:12
 * Created by yangqiangyu
 */
public class OnlFormFieldForm {

    public static class Generate{

        @NotNull(message = "表单id不能为空")
        private Long id;

        public Long getId() {
            return id;
        }

        public Generate setId(Long id) {
            this.id = id;
            return this;
        }
    }

    public static class Add {
        /**
         * 表ID
         */
        @NotNull(message = "表ID不能为空")
        private Long cgformHeadId;
        /**
         * 字段名字
         */
        @NotBlank(message = "字段名字不能为空")
        private String dbFieldName;
        /**
         * 字段备注
         */
        private String dbFieldTxt;
        /**
         * 原字段名
         */
        private String dbFieldNameOld;
        /**
         * 是否主键 0否 1是
         */
        private Integer dbIsKey;
        /**
         * 是否允许为空0否 1是
         */
        private Integer dbIsNull;
        /**
         * 数据库字段类型
         */
        @NotBlank(message = "数据库字段类型不能为空")
        private String dbType;
        /**
         * 数据库字段长度
         */
        @NotNull(message = "数据库字段长度不能为空")
        private Integer dbLength;
        /**
         * 小数点
         */
        private Integer dbPointLength;
        /**
         * 表字段默认值
         */
        private String dbDefaultVal;
        /**
         * 字典code
         */
        private String dictField;
        /**
         * 字典表
         */
        private String dictTable;
        /**
         * 字典Text
         */
        private String dictText;
        /**
         * 表单控件类型
         */
        private String fieldShowType;
        /**
         * 跳转URL
         */
        private String fieldHref;
        /**
         * 表单控件长度
         */
        private Integer fieldLength;
        /**
         * 表单字段校验规则
         */
        private String fieldValidType;
        /**
         * 字段是否必填
         */
        private String fieldMustInput;
        /**
         * 扩展参数JSON
         */
        private String fieldExtendJson;
        /**
         * 控件默认值，不同的表达式展示不同的结果。
         * 1. 纯字符串直接赋给默认值；
         * 2. #{普通变量}；
         * 3. {{ 动态JS表达式 }}；
         * 4. ${填值规则编码}；
         * 填值规则表达式只允许存在一个，且不能和其他规则混用。
         */
        private String fieldDefaultValue;
        /**
         * 是否查询条件0否 1是
         */
        private Integer isQuery;
        /**
         * 表单是否显示0否 1是
         */
        private Integer isShowForm;
        /**
         * 列表是否显示0否 1是
         */
        private Integer isShowList;
        /**
         * 是否是只读（1是 0否）
         */
        private Integer isReadOnly;
        /**
         * 查询模式
         */
        private String queryMode;
        /**
         * 外键主表名
         */
        private String mainTable;
        /**
         * 外键主键字段
         */
        private String mainField;
        /**
         * 排序
         */
        private Integer orderNum;
        /**
         * 修改人
         */
        private String updateBy;
        /**
         * 修改时间
         */
        private Date updateTime;
        /**
         * 创建时间
         */
        private Date createTime;
        /**
         * 创建人
         */
        private String createBy;
        /**
         * 自定义值转换器
         */
        private String converter;
        /**
         * 查询默认值
         */
        private String queryDefVal;
        /**
         * 查询配置字典text
         */
        private String queryDictText;
        /**
         * 查询配置字典code
         */
        private String queryDictField;
        /**
         * 查询配置字典table
         */
        private String queryDictTable;
        /**
         * 查询显示控件
         */
        private String queryShowType;
        /**
         * 是否启用查询配置1是0否
         */
        private String queryConfigFlag;
        /**
         * 查询字段校验类型
         */
        private String queryValidType;
        /**
         * 查询字段是否必填1是0否
         */
        private String queryMustInput;
        /**
         * 是否支持排序1是0否
         */
        private String sortFlag;

        public Long getFormHeadId() {
            return cgformHeadId;
        }

        public Add setFormHeadId(Long cgformHeadId) {
            this.cgformHeadId = cgformHeadId;
            return this;
        }


        public String getDbFieldName() {
            return dbFieldName;
        }

        public Add setDbFieldName(String dbFieldName) {
            this.dbFieldName = dbFieldName;
            return this;
        }


        public String getDbFieldTxt() {
            return dbFieldTxt;
        }

        public Add setDbFieldTxt(String dbFieldTxt) {
            this.dbFieldTxt = dbFieldTxt;
            return this;
        }


        public String getDbFieldNameOld() {
            return dbFieldNameOld;
        }

        public Add setDbFieldNameOld(String dbFieldNameOld) {
            this.dbFieldNameOld = dbFieldNameOld;
            return this;
        }


        public Integer getDbIsKey() {
            return dbIsKey;
        }

        public Add setDbIsKey(Integer dbIsKey) {
            this.dbIsKey = dbIsKey;
            return this;
        }


        public Integer getDbIsNull() {
            return dbIsNull;
        }

        public Add setDbIsNull(Integer dbIsNull) {
            this.dbIsNull = dbIsNull;
            return this;
        }


        public String getDbType() {
            return dbType;
        }

        public Add setDbType(String dbType) {
            this.dbType = dbType;
            return this;
        }


        public Integer getDbLength() {
            return dbLength;
        }

        public Add setDbLength(Integer dbLength) {
            this.dbLength = dbLength;
            return this;
        }


        public Integer getDbPointLength() {
            return dbPointLength;
        }

        public Add setDbPointLength(Integer dbPointLength) {
            this.dbPointLength = dbPointLength;
            return this;
        }


        public String getDbDefaultVal() {
            return dbDefaultVal;
        }

        public Add setDbDefaultVal(String dbDefaultVal) {
            this.dbDefaultVal = dbDefaultVal;
            return this;
        }


        public String getDictField() {
            return dictField;
        }

        public Add setDictField(String dictField) {
            this.dictField = dictField;
            return this;
        }


        public String getDictTable() {
            return dictTable;
        }

        public Add setDictTable(String dictTable) {
            this.dictTable = dictTable;
            return this;
        }


        public String getDictText() {
            return dictText;
        }

        public Add setDictText(String dictText) {
            this.dictText = dictText;
            return this;
        }


        public String getFieldShowType() {
            return fieldShowType;
        }

        public Add setFieldShowType(String fieldShowType) {
            this.fieldShowType = fieldShowType;
            return this;
        }


        public String getFieldHref() {
            return fieldHref;
        }

        public Add setFieldHref(String fieldHref) {
            this.fieldHref = fieldHref;
            return this;
        }


        public Integer getFieldLength() {
            return fieldLength;
        }

        public Add setFieldLength(Integer fieldLength) {
            this.fieldLength = fieldLength;
            return this;
        }


        public String getFieldValidType() {
            return fieldValidType;
        }

        public Add setFieldValidType(String fieldValidType) {
            this.fieldValidType = fieldValidType;
            return this;
        }


        public String getFieldMustInput() {
            return fieldMustInput;
        }

        public Add setFieldMustInput(String fieldMustInput) {
            this.fieldMustInput = fieldMustInput;
            return this;
        }


        public String getFieldExtendJson() {
            return fieldExtendJson;
        }

        public Add setFieldExtendJson(String fieldExtendJson) {
            this.fieldExtendJson = fieldExtendJson;
            return this;
        }


        public String getFieldDefaultValue() {
            return fieldDefaultValue;
        }

        public Add setFieldDefaultValue(String fieldDefaultValue) {
            this.fieldDefaultValue = fieldDefaultValue;
            return this;
        }


        public Integer getIsQuery() {
            return isQuery;
        }

        public Add setIsQuery(Integer isQuery) {
            this.isQuery = isQuery;
            return this;
        }


        public Integer getIsShowForm() {
            return isShowForm;
        }

        public Add setIsShowForm(Integer isShowForm) {
            this.isShowForm = isShowForm;
            return this;
        }


        public Integer getIsShowList() {
            return isShowList;
        }

        public Add setIsShowList(Integer isShowList) {
            this.isShowList = isShowList;
            return this;
        }


        public Integer getIsReadOnly() {
            return isReadOnly;
        }

        public Add setIsReadOnly(Integer isReadOnly) {
            this.isReadOnly = isReadOnly;
            return this;
        }


        public String getQueryMode() {
            return queryMode;
        }

        public Add setQueryMode(String queryMode) {
            this.queryMode = queryMode;
            return this;
        }


        public String getMainTable() {
            return mainTable;
        }

        public Add setMainTable(String mainTable) {
            this.mainTable = mainTable;
            return this;
        }


        public String getMainField() {
            return mainField;
        }

        public Add setMainField(String mainField) {
            this.mainField = mainField;
            return this;
        }


        public Integer getOrderNum() {
            return orderNum;
        }

        public Add setOrderNum(Integer orderNum) {
            this.orderNum = orderNum;
            return this;
        }


        public String getUpdateBy() {
            return updateBy;
        }

        public Add setUpdateBy(String updateBy) {
            this.updateBy = updateBy;
            return this;
        }


        public Date getUpdateTime() {
            return updateTime;
        }

        public Add setUpdateTime(Date updateTime) {
            this.updateTime = updateTime;
            return this;
        }


        public Date getCreateTime() {
            return createTime;
        }

        public Add setCreateTime(Date createTime) {
            this.createTime = createTime;
            return this;
        }


        public String getCreateBy() {
            return createBy;
        }

        public Add setCreateBy(String createBy) {
            this.createBy = createBy;
            return this;
        }


        public String getConverter() {
            return converter;
        }

        public Add setConverter(String converter) {
            this.converter = converter;
            return this;
        }


        public String getQueryDefVal() {
            return queryDefVal;
        }

        public Add setQueryDefVal(String queryDefVal) {
            this.queryDefVal = queryDefVal;
            return this;
        }


        public String getQueryDictText() {
            return queryDictText;
        }

        public Add setQueryDictText(String queryDictText) {
            this.queryDictText = queryDictText;
            return this;
        }


        public String getQueryDictField() {
            return queryDictField;
        }

        public Add setQueryDictField(String queryDictField) {
            this.queryDictField = queryDictField;
            return this;
        }


        public String getQueryDictTable() {
            return queryDictTable;
        }

        public Add setQueryDictTable(String queryDictTable) {
            this.queryDictTable = queryDictTable;
            return this;
        }


        public String getQueryShowType() {
            return queryShowType;
        }

        public Add setQueryShowType(String queryShowType) {
            this.queryShowType = queryShowType;
            return this;
        }


        public String getQueryConfigFlag() {
            return queryConfigFlag;
        }

        public Add setQueryConfigFlag(String queryConfigFlag) {
            this.queryConfigFlag = queryConfigFlag;
            return this;
        }


        public String getQueryValidType() {
            return queryValidType;
        }

        public Add setQueryValidType(String queryValidType) {
            this.queryValidType = queryValidType;
            return this;
        }


        public String getQueryMustInput() {
            return queryMustInput;
        }

        public Add setQueryMustInput(String queryMustInput) {
            this.queryMustInput = queryMustInput;
            return this;
        }


        public String getSortFlag() {
            return sortFlag;
        }

        public Add setSortFlag(String sortFlag) {
            this.sortFlag = sortFlag;
            return this;
        }


    }

    public static class Edit {

        @NotNull(message = "请传入id")
        private Long id;

        /**
         * 表ID
         */
        private Long formHeadId;
        /**
         * 字段名字
         */
        private String dbFieldName;
        /**
         * 字段备注
         */
        private String dbFieldTxt;
        /**
         * 原字段名
         */
        private String dbFieldNameOld;
        /**
         * 是否主键 0否 1是
         */
        private Integer dbIsKey;
        /**
         * 是否允许为空0否 1是
         */
        private Integer dbIsNull;
        /**
         * 数据库字段类型
         */
        private String dbType;
        /**
         * 数据库字段长度
         */
        private Integer dbLength;
        /**
         * 小数点
         */
        private Integer dbPointLength;
        /**
         * 表字段默认值
         */
        private String dbDefaultVal;
        /**
         * 字典code
         */
        private String dictField;
        /**
         * 字典表
         */
        private String dictTable;
        /**
         * 字典Text
         */
        private String dictText;
        /**
         * 表单控件类型
         */
        private String fieldShowType;
        /**
         * 跳转URL
         */
        private String fieldHref;
        /**
         * 表单控件长度
         */
        private Integer fieldLength;
        /**
         * 表单字段校验规则
         */
        private String fieldValidType;
        /**
         * 字段是否必填
         */
        private String fieldMustInput;
        /**
         * 扩展参数JSON
         */
        private String fieldExtendJson;
        /**
         * 控件默认值，不同的表达式展示不同的结果。
         * 1. 纯字符串直接赋给默认值；
         * 2. #{普通变量}；
         * 3. {{ 动态JS表达式 }}；
         * 4. ${填值规则编码}；
         * 填值规则表达式只允许存在一个，且不能和其他规则混用。
         */
        private String fieldDefaultValue;
        /**
         * 是否查询条件0否 1是
         */
        private Integer isQuery;
        /**
         * 表单是否显示0否 1是
         */
        private Integer isShowForm;
        /**
         * 列表是否显示0否 1是
         */
        private Integer isShowList;
        /**
         * 是否是只读（1是 0否）
         */
        private Integer isReadOnly;
        /**
         * 查询模式
         */
        private String queryMode;
        /**
         * 外键主表名
         */
        private String mainTable;
        /**
         * 外键主键字段
         */
        private String mainField;
        /**
         * 排序
         */
        private Integer orderNum;
        /**
         * 修改人
         */
        private String updateBy;
        /**
         * 修改时间
         */
        private Date updateTime;
        /**
         * 创建时间
         */
        private Date createTime;
        /**
         * 创建人
         */
        private String createBy;
        /**
         * 自定义值转换器
         */
        private String converter;
        /**
         * 查询默认值
         */
        private String queryDefVal;
        /**
         * 查询配置字典text
         */
        private String queryDictText;
        /**
         * 查询配置字典code
         */
        private String queryDictField;
        /**
         * 查询配置字典table
         */
        private String queryDictTable;
        /**
         * 查询显示控件
         */
        private String queryShowType;
        /**
         * 是否启用查询配置1是0否
         */
        private String queryConfigFlag;
        /**
         * 查询字段校验类型
         */
        private String queryValidType;
        /**
         * 查询字段是否必填1是0否
         */
        private String queryMustInput;
        /**
         * 是否支持排序1是0否
         */
        private String sortFlag;

        public Long getId() {
            return id;
        }

        public Edit setId(Long id) {
            this.id = id;
            return this;
        }

        public Long getFormHeadId() {
            return formHeadId;
        }

        public Edit setFormHeadId(Long formHeadId) {
            this.formHeadId = formHeadId;
            return this;
        }

        public String getDbFieldName() {
            return dbFieldName;
        }

        public Edit setDbFieldName(String dbFieldName) {
            this.dbFieldName = dbFieldName;
            return this;
        }

        public String getDbFieldTxt() {
            return dbFieldTxt;
        }

        public Edit setDbFieldTxt(String dbFieldTxt) {
            this.dbFieldTxt = dbFieldTxt;
            return this;
        }

        public String getDbFieldNameOld() {
            return dbFieldNameOld;
        }

        public Edit setDbFieldNameOld(String dbFieldNameOld) {
            this.dbFieldNameOld = dbFieldNameOld;
            return this;
        }

        public Integer getDbIsKey() {
            return dbIsKey;
        }

        public Edit setDbIsKey(Integer dbIsKey) {
            this.dbIsKey = dbIsKey;
            return this;
        }

        public Integer getDbIsNull() {
            return dbIsNull;
        }

        public Edit setDbIsNull(Integer dbIsNull) {
            this.dbIsNull = dbIsNull;
            return this;
        }

        public String getDbType() {
            return dbType;
        }

        public Edit setDbType(String dbType) {
            this.dbType = dbType;
            return this;
        }

        public Integer getDbLength() {
            return dbLength;
        }

        public Edit setDbLength(Integer dbLength) {
            this.dbLength = dbLength;
            return this;
        }

        public Integer getDbPointLength() {
            return dbPointLength;
        }

        public Edit setDbPointLength(Integer dbPointLength) {
            this.dbPointLength = dbPointLength;
            return this;
        }

        public String getDbDefaultVal() {
            return dbDefaultVal;
        }

        public Edit setDbDefaultVal(String dbDefaultVal) {
            this.dbDefaultVal = dbDefaultVal;
            return this;
        }

        public String getDictField() {
            return dictField;
        }

        public Edit setDictField(String dictField) {
            this.dictField = dictField;
            return this;
        }

        public String getDictTable() {
            return dictTable;
        }

        public Edit setDictTable(String dictTable) {
            this.dictTable = dictTable;
            return this;
        }

        public String getDictText() {
            return dictText;
        }

        public Edit setDictText(String dictText) {
            this.dictText = dictText;
            return this;
        }

        public String getFieldShowType() {
            return fieldShowType;
        }

        public Edit setFieldShowType(String fieldShowType) {
            this.fieldShowType = fieldShowType;
            return this;
        }

        public String getFieldHref() {
            return fieldHref;
        }

        public Edit setFieldHref(String fieldHref) {
            this.fieldHref = fieldHref;
            return this;
        }

        public Integer getFieldLength() {
            return fieldLength;
        }

        public Edit setFieldLength(Integer fieldLength) {
            this.fieldLength = fieldLength;
            return this;
        }

        public String getFieldValidType() {
            return fieldValidType;
        }

        public Edit setFieldValidType(String fieldValidType) {
            this.fieldValidType = fieldValidType;
            return this;
        }

        public String getFieldMustInput() {
            return fieldMustInput;
        }

        public Edit setFieldMustInput(String fieldMustInput) {
            this.fieldMustInput = fieldMustInput;
            return this;
        }

        public String getFieldExtendJson() {
            return fieldExtendJson;
        }

        public Edit setFieldExtendJson(String fieldExtendJson) {
            this.fieldExtendJson = fieldExtendJson;
            return this;
        }

        public String getFieldDefaultValue() {
            return fieldDefaultValue;
        }

        public Edit setFieldDefaultValue(String fieldDefaultValue) {
            this.fieldDefaultValue = fieldDefaultValue;
            return this;
        }

        public Integer getIsQuery() {
            return isQuery;
        }

        public Edit setIsQuery(Integer isQuery) {
            this.isQuery = isQuery;
            return this;
        }

        public Integer getIsShowForm() {
            return isShowForm;
        }

        public Edit setIsShowForm(Integer isShowForm) {
            this.isShowForm = isShowForm;
            return this;
        }

        public Integer getIsShowList() {
            return isShowList;
        }

        public Edit setIsShowList(Integer isShowList) {
            this.isShowList = isShowList;
            return this;
        }

        public Integer getIsReadOnly() {
            return isReadOnly;
        }

        public Edit setIsReadOnly(Integer isReadOnly) {
            this.isReadOnly = isReadOnly;
            return this;
        }

        public String getQueryMode() {
            return queryMode;
        }

        public Edit setQueryMode(String queryMode) {
            this.queryMode = queryMode;
            return this;
        }

        public String getMainTable() {
            return mainTable;
        }

        public Edit setMainTable(String mainTable) {
            this.mainTable = mainTable;
            return this;
        }

        public String getMainField() {
            return mainField;
        }

        public Edit setMainField(String mainField) {
            this.mainField = mainField;
            return this;
        }

        public Integer getOrderNum() {
            return orderNum;
        }

        public Edit setOrderNum(Integer orderNum) {
            this.orderNum = orderNum;
            return this;
        }

        public String getUpdateBy() {
            return updateBy;
        }

        public Edit setUpdateBy(String updateBy) {
            this.updateBy = updateBy;
            return this;
        }

        public Date getUpdateTime() {
            return updateTime;
        }

        public Edit setUpdateTime(Date updateTime) {
            this.updateTime = updateTime;
            return this;
        }

        public Date getCreateTime() {
            return createTime;
        }

        public Edit setCreateTime(Date createTime) {
            this.createTime = createTime;
            return this;
        }

        public String getCreateBy() {
            return createBy;
        }

        public Edit setCreateBy(String createBy) {
            this.createBy = createBy;
            return this;
        }

        public String getConverter() {
            return converter;
        }

        public Edit setConverter(String converter) {
            this.converter = converter;
            return this;
        }

        public String getQueryDefVal() {
            return queryDefVal;
        }

        public Edit setQueryDefVal(String queryDefVal) {
            this.queryDefVal = queryDefVal;
            return this;
        }

        public String getQueryDictText() {
            return queryDictText;
        }

        public Edit setQueryDictText(String queryDictText) {
            this.queryDictText = queryDictText;
            return this;
        }

        public String getQueryDictField() {
            return queryDictField;
        }

        public Edit setQueryDictField(String queryDictField) {
            this.queryDictField = queryDictField;
            return this;
        }

        public String getQueryDictTable() {
            return queryDictTable;
        }

        public Edit setQueryDictTable(String queryDictTable) {
            this.queryDictTable = queryDictTable;
            return this;
        }

        public String getQueryShowType() {
            return queryShowType;
        }

        public Edit setQueryShowType(String queryShowType) {
            this.queryShowType = queryShowType;
            return this;
        }

        public String getQueryConfigFlag() {
            return queryConfigFlag;
        }

        public Edit setQueryConfigFlag(String queryConfigFlag) {
            this.queryConfigFlag = queryConfigFlag;
            return this;
        }

        public String getQueryValidType() {
            return queryValidType;
        }

        public Edit setQueryValidType(String queryValidType) {
            this.queryValidType = queryValidType;
            return this;
        }

        public String getQueryMustInput() {
            return queryMustInput;
        }

        public Edit setQueryMustInput(String queryMustInput) {
            this.queryMustInput = queryMustInput;
            return this;
        }

        public String getSortFlag() {
            return sortFlag;
        }

        public Edit setSortFlag(String sortFlag) {
            this.sortFlag = sortFlag;
            return this;
        }

    }

    public static class Search {

        private String queryFields;

        private String key;

        /**
         * 表ID
         */
        private Long cgformHeadId;

        public String getKey() {
            return key;
        }

        public Search setKey(String key) {
            this.key = key;
            return this;
        }

        public String getQueryFields() {
            return queryFields;
        }

        public Search setQueryFields(String queryFields) {
            this.queryFields = queryFields;
            return this;
        }

        public Long getFormHeadId() {
            return cgformHeadId;
        }

        public Search setFormHeadId(Long cgformHeadId) {
            this.cgformHeadId = cgformHeadId;
            return this;
        }


    }


    public static class Get {
        @NotNull(message = "请传入id")
        private Long id;

        private String queryFields;


        public Long getId() {
            return id;
        }

        public Get setId(Long id) {
            this.id = id;
            return this;
        }

        public String getQueryFields() {
            return queryFields;
        }

        public Get setQueryFields(String queryFields) {
            this.queryFields = queryFields;
            return this;
        }

    }

    public static class Del {
        @NotNull(message = "请传入id")
        private Long id;

        public Long getId() {
            return id;
        }

        public Del setId(Long id) {
            this.id = id;
            return this;
        }
    }


}